An automated application may run in accordance with a script. A script may include a list of instructions that are to be automatically performed by a processor or system. Web automation may be understood to include such automated script-based applications that are designed to run within the framework of an application, such as a browser, operating on the World Wide Web, the Internet, or another network.
An example of web automation includes automatic performance testing. Automatic performance testing may enable simulating and evaluating behavior of a software-based system under conditions that may be difficult to achieve otherwise. Such conditions may include testing a system under a heavy user load. For example, a heavy user load may include a large number of users that are accessing a system concurrently. An automatic performance testing program or application may be applied to emulate the behavior of such a large number of users. The automatic performance testing emulation may send a series of commands to the system that simulate interactions of a large number of users. During the emulation, information regarding components of the system may be collected and analyzed. Analysis of the information may be used in identifying potential or actual problems with the system, and what corrective action may be taken. For example, automatic performance testing may be used to evaluate performance of a system such as an automated teller machine (ATM) server or a database server.
Web automation may be based on recorded scripts. For example, at a user level, a script may include a sequence of user actions such as clicking, pressing a button, dragging, opening/closing a dialog box, typing, and selecting. Such a sequence of user actions may be recorded from a user actually performing these actions on a user interface, or may be written or edited using an appropriate script writing/editing user interface. At a transport level, the script may be converted to a series of electronic signals for transmission to a destination (e.g. to a server of the system to be tested) in accordance with a protocol.
Recording of the script may include conversion of the script into instructions that are interpretable by a runtime engine. The runtime engine may be configurable so as to replay one or more recorded scripts to perform the associated actions. For example, instructions of the script may be transmitted over a network to a component of a system being tested. By replaying multiple instances of recorded scripts, a runtime engine may simulate multiple users (“virtual users”) that interact with the system.